In computer hardware, shared memory typically refers to a large block of random access memory that can be accessed by several different central processing units (CPUs) or other components in a multiple-processor computer system. For example, mobile phones often contain a baseband processor, media processor, and LCD controller, each of which may share a common memory area. The components of a multiple-processor system often need to share information. For example, the media processor of a mobile phone may run an operating system that interacts with the baseband processor to make a telephone call. As another example, the media processor may write information into a frame buffer of the LCD controller that describes an image to be displayed. The information sharing between components typically requires many different control and data interfaces. Control and data interfaces may be defined between each of the components and between the components and the shared memory. Moreover, there may be additional interfaces between each component using the shared memory for coordinating accesses of the shared memory.
The result of a multi-processor architecture is increased complexity within each component for handling the various interfaces and an increased number of interconnects necessary to support the needed communication between components. Interconnects are expensive and require extra work for each component to use. Often desirable components may not be used because they do not interoperate correctly with another required component. For example, a particular LCD controller may not be capable of communicating at a speed required by a particular media processor, such that a more expensive LCD controller must be selected. The interface requirements not only increase the complexity of the overall system, but also increase the cost. There is therefore a need for an improved method of communicating within a multi-processor system in a manner that minimizes the communication overhead that must be managed by the components in the system.